我的Bilibili频道:香芋派Taro
我的个人博客:taropie0224.github.io(阅读体验更佳)
我的公众号:香芋派的烘焙坊
我的音频技术交流群:1136403177
我的个人微信:JazzyTaroPie

https://leetcode-cn.com/problems/single-number/

思路

经典的异或
我们先来找找关键词:

  • 一个元素出现一次
  • 其他元素都出现两次

这边这个两次很有意思啊,注意是两次而不是多次,所以我们可以考虑异或来解决,由于异或运算满足交换律结合律,而自己跟自己的异或为0,所以按照题目的条件,把数组中的内容全部异或后最后的结果就是那个只出现一次的数字。

题解

1
2
3
4
5
6
7
8
9
10
11
class Solution
{
public:
int singleNumber(vector<int> &nums)
{
int ret = 0;
for (auto e : nums)
ret ^= e;
return ret;
}
};